It is common in many contemporary computer systems to provide administrative personnel with data services that allow data storage to be controlled and backup copies of stored data to be made where necessary. These data services can include data volume management in which one or more logical “volumes” are created from stored data so that the data in each volume can be manipulated as a unit.
Data backup services may include data replication in which a second copy or “mirror” of information located at a primary site is maintained at a secondary site. When changes are made to the primary data, updates are also made to the secondary data so that the primary data and the secondary data remain “synchronized.”
Another data backup service that can be provided is data imaging in which a data copy often called a data “snapshot” or “image” can be made of stored data at a designated point in time. This service provides a system administrator with the ability to make and to maintain the aforementioned replicated data storage systems.
Still other data services can be provided. For example, data stored and retrieved in a data storage system may be transferred through a fast cache memory in a process called “data caching” in order to improve overall data storage performance. Often it is desirable for system administrators to be able to control whether data caching is used with a particular data storage or a data volume residing on that storage in order to effectively use a limited resource.
No matter which of the data services are used, a significant amount of management time can be consumed in initially setting up the data service and managing it after it is running. For example, management of each of the aforementioned data services requires the ability for a manager to discover volumes existing in the system, verify that those volumes are suitable for use with a particular data service and configure the volumes if they are not suitable.
In a large, distributed computer system connected by a network, management personnel and resources may be physically located anywhere in the system. However, the data manipulation processes, which actually perform the data services, are typically low-level routines that are part of an operating system kernel running on a particular machine. These routines typically must run on that machine and must be written in a platform-dependent language. Thus, prior art systems required a manager to physically log onto each local host in a distributed system in order to manage data services. Further, there was no way to diagnose problems that occurred when several data services were using the same volume.